package com.example.security.library;
import java.util.Locale;


import android.app.Activity;
import android.content.Context;
import android.media.AudioManager;
import android.speech.tts.TextToSpeech;
import android.util.Log;

@SuppressWarnings("unused")
public class Speaker implements TextToSpeech.OnInitListener{

	private TextToSpeech _Tts = null;     //l'objet permettant de lire un String oralement
	//et sa construction, il appelle la methode onInit(int)
	private Activity _activity;           //l'application
	private String message ;
	/**
	 * Constructeur prive de Speaker
	 * @param activity l'application
	 * @param alerte   l'alerte a lire
	 * @param lireTitre  definit si le titre doit etre lu
	 */
	private Speaker(Activity activity, String message){
		this.message = message;
		_activity = activity;
		_Tts = new TextToSpeech(activity,this); //puis on lit l'alerte
	}

	/**
	 * Nécessaire pour la creation du TextToSpeech
	 */
	public void onInit(int status) {
		if (status == TextToSpeech.SUCCESS) { //si on a un module TextToSpeech d'installé

			int result = _Tts.setLanguage(Locale.FRANCE);

			if (result == TextToSpeech.LANG_MISSING_DATA ||

					result == TextToSpeech.LANG_NOT_SUPPORTED) {

				Log.e("TTS", "Le langage Francais n'est pas supporte");

			} else {  //et si le francais est supporté
				//on lit le message et son titre
				speech(message); 
			}

		} else {

			// si la synthese vocal n'est pas disponible

			Log.e("TTS", "Aucun module TextToSpeach n'est installe");


		}
	}

	/**
	 * Fonction statique permettant de lire oralement une alerte sans son titre
	 * @param activity l'application
	 * @param alerte l'alerte a lire
	 */
	public static void lireMessage(Activity activity,String message){
		Speaker speaker = new Speaker(activity,message);
	}

	/*
	public static void changerVolume(Activity activity, String volume){
		AudioManager audioManager = (AudioManager) activity.getSystemService(Context.AUDIO_SERVICE);
		//on récupère le service audio du téléphone

		Integer vol = Integer.parseInt(volume.replace("%", "").replace(" ", ""));

		Log.d("KEOLIS","volume :"+vol);

		audioManager.setStreamVolume(AudioManager.STREAM_MUSIC, audioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC)* vol/100,0);		
		//puis on affecte le STREAM MUSICau volume désiré
	}
	 */
	/**
	 * Lit oralement un message procede de son titre si le booléen _lireTitre est à vrai
	 * @param titre titre
	 * @param message message à lire
	 */
	public void speech(String message){
		this.message = message;
		_Tts.speak(message, TextToSpeech.QUEUE_FLUSH, null);
		//_Tts.shutdown();
		//puis on ajoute a la liste de lecture le message

	}


}